МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
ЗВІТ
До виконання лабораторної роботи №8
На тему: “ Використання колекцій в Java”
З курсу “ Об’єктно-орієнтоване програмування”
Львів – 2009
МЕТА РОБОТИ
Метою роботи є придбання навиків використання колекцій в програмах на мові Java.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
3.1. Компоненти колекцій
Колекція, іноді звана контейнером, - це об'єкт, який об'єднує декілька елементів в один об'єкт. Колекції використовуються для зберігання даних, доступу і маніпуляцій з даними, а також для передачі даних від одного методу до іншого. Колекція звичайно представляє дані, які представляють природну групу, наприклад телефонний довідник (колекція відповідностей між ім'ям і телефонним номером). Масив також можна розглядати як колекцію, об'єднуючу дані одного типа, елементи якої розташовані послідовно, у порядку зростання індексу.
Всі інтерфейси і класи, що відносяться до колекцій, знаходяться в пакеті java.util.
Схема колекцій (collections framework) - це уніфікована архітектура для уявлення і маніпулювання колекціями. Всі схеми колекцій містять наступні три компоненти:
Інтерфейси - абстрактні типи даних, що представляють колекції. Інтерфейси дозволяють маніпулювати колекціями незалежно від деталей їх уявлення. У Java, як і в інших об'єктно-орієнтованих мовах, ці інтерфейси звичайно утворюють ієрархію.
· Реалізації - конкретні реалізації інтерфейсів колекції. За своєю суттю вони є повторно використовуваними структурами даних.
· Алгоритми - методи, що виконують деякі корисні дії, наприклад, пошук або сортування, над об'єктами, що реалізовують інтерфейси колекцій. Ці методи називають поліморфними, оскільки один і той же метод може використовуватися в багатьох різних реалізаціях відповідного інтерфейсу колекцій. По суті алгоритми забезпечують повторно використовувану функціональність.
3.2. Інтерфейси колекцій
Ключові інтерфейси колекцій введені, починаючи з JDK 1.2, і використовуються для маніпулювання колекціями, а також для передачі їх від одного методу до іншого. Головною метою цих інтерфейсів є можливість маніпулювання колекціями незалежно від деталей їх реалізації.
· Інтерфейси утворюють дві ієрархії.
· Інтерфейс Collection є коренем першої ієрархії. Цей інтерфейс представляє групу об'єктів, відомих як його елементи. Деякі реалізації колекцій вирішують дублювання елементів, інші - ні. Пакет SDK не забезпечує прямої реалізації цього інтерфейсу і він використовується для передачі колекцій і маніпулювання ними, коли потрібне максимальне узагальнення.
· Інтерфейс Collection оголошує методи, що виконують наступні операції:
визначення кількості елементів в колекції (методи int size() і);
· перевірка, чи містить колекція елементи (метод boolean isEmpty());
· перевірка, чи знаходиться даний елемент в колекції (метод boolean contains(Object element));
· порівняння заданого об'єкту з даною колекцією на рівність (метод public boolean equals(Object про));
· додавання елементу в колекцію (метод boolean add(Object element)) і видалення елементу з колекції (метод boolean remove(Object element)), а також очищення колекції (метод public void clear());
· забезпечення ітераційних операцій над колекцією (метод Iterator iterator());
· забезпечення моста між колекціями і старими інтерфейсами прикладних програм, які припускали передачу їм параметрів об'єкту у вигляді масиву (методи Object[] toArray() і Object[] toArray(Object a[])).
Окрім цього, для колекцій визначені наступні групові операції
· boolean containsAll(Collection з)
· boolean addAll(Collection з)
· boolean removeAll(Collection з)
· boolean retainAll(Collection з)
які дозволяють перевірити, чи містяться всі елементи колекції з в даній колекції; додати всі елементи колекції до даної колекції; видалити з даної колекції всі елементи, що містяться в колекції з або залишити в даній колекції тільки ті елементи, які містяться в колекції з.
Метод iter...